#ifndef MARCADORPAIS_H
#define MARCADORPAIS_H

#include <QGraphicsEllipseItem>
#include <QMouseEvent>

class MarcadorPais : public QObject, public QGraphicsEllipseItem
{

    Q_OBJECT

public:

    MarcadorPais(QString nome_pais, Qt::GlobalColor color, QGraphicsItem* parent = 0);
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget* widget);

    // Getters
    inline QString getNomePais () { return this->nome_pais; }
    inline Qt::GlobalColor getCor () { return this->color; }
    inline QString getNomeJogador () { return this->dono_pais; }
    inline int getNumeroTropas () { return this->numero_tropas; }
    inline QStringList getPaisesVizinhos () { return this->paises_vizinhos; }
    inline int getTropasAdicionadas () { return this->tropas_adicionadas; }

    // Setters
    inline void setCor (Qt::GlobalColor cor) { this->color = cor; }
    inline void setDonoPais (QString dono_pais) { this->dono_pais = dono_pais; }
    inline void setNumeroTropas (int numero_tropas) { this->numero_tropas = numero_tropas; }
    inline void setTropasAdicionadas (int tropas_adicionadas) { this->tropas_adicionadas = tropas_adicionadas; }

    inline void adicionaVizinho (QString vizinho) { this->paises_vizinhos.append(vizinho); }

private:

    QString nome_pais;
    Qt::GlobalColor color;
    QString dono_pais;
    int numero_tropas;
    QStringList paises_vizinhos;
    int tropas_adicionadas;

protected:

    void mousePressEvent(QGraphicsSceneMouseEvent* event);

signals:

    void marcadorClicado (MarcadorPais* marcador, Qt::MouseButton button);
};

#endif // MARCADORPAIS_H
